Skip to content

Enhance Helm strategy and support of Statefullset/Cronjob#1253

Merged
BraisVQ merged 21 commits intomasterfrom
helm-changes
Feb 18, 2026
Merged

Enhance Helm strategy and support of Statefullset/Cronjob#1253
BraisVQ merged 21 commits intomasterfrom
helm-changes

Conversation

@BraisVQ
Copy link
Contributor

@BraisVQ BraisVQ commented Jan 5, 2026

On this PR, I made the following changes to the Helm implementation and maintained Tailor working as it was before:

  • Support for Statefulsets and Cronjobs.
  • Support multiple containers with different images in one pod and multiple replicas.
  • Add a configurable history limit to Helm releases to avoid having too many Helm release secrets in the cluster.
  • Enforce default helm flags ('--install', '--atomic'), now they cannot be changed.
  • Change the way the image in use is determined (now taken from the Deployment, StatefulSet, Cronjob, etc). Before it was taken from the pod, and sometimes we have seen it take the wrong image.
  • Remove check for running pods, with the enforcement of the atomic flag, we can use that safely to ensure the helm release is successful.

Tested successfully with the following setup in Release Manager:

  • One helm component with a deployment with 3 replicas, a deployment with 2 containers each with a different image, a statefullset with 3 replicas, and a cronjob.
  • One helm component with a statefullset with 3 replicas
  • One helm component with a crojob
  • One tailor component with a deploymentconfig

BraisVQ added 16 commits January 3, 2026 18:35
… types and update method signatures for better flexibility
… types and improve Helm deployment resource handling
…omments for clarity on supported Kubernetes workload types
…Component to ensure consistent image string extraction and improve deployment data organization
…rings in FinalizeOdsComponent and DeploymentDescriptor
…ng for Helm and Tailor deployment strategies
- Removed unused PodData import from DeployOdsComponent.groovy.
- Simplified component selector handling in FinalizeOdsComponent.groovy.
- Enhanced image validation logic in FinalizeOdsComponent.groovy.
- Updated HelmDeploymentStrategySpec to use simpler map structures for expected rollout data.
- Refactored pod data handling in HelmDeploymentStrategySpec to use container images directly from pod specs.
- Added tests for various resource types including StatefulSet and CronJob in HelmDeploymentStrategySpec.
- Improved FixtureHelper to create detailed Helm status maps for different resource types.
- Updated OpenShiftServiceSpec to test getContainerImagesWithNameFromPodSpec for multiple container scenarios.
- Adjusted OdsComponentStageRolloutOpenShiftDeploymentSpec to reflect new data structures and improve clarity.
@BraisVQ BraisVQ changed the title Helm changes Enhance Helm strategy and support of Statefullset/Cronjob Jan 5, 2026
@BraisVQ BraisVQ marked this pull request as ready for review January 15, 2026 10:14
@BraisVQ
Copy link
Contributor Author

BraisVQ commented Jan 15, 2026

Checked generated TIR document and it is properly generated with the correct content.

@gerardcl
Copy link
Member

great job @BraisVQ, thanks for making this happen!!! 🚀
LGTM!

@BraisVQ BraisVQ merged commit 019389e into master Feb 18, 2026
3 checks passed
@BraisVQ BraisVQ deleted the helm-changes branch February 18, 2026 08:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants